The present invention relates to a computer system having a filtering mechanism for finding and selecting only a collection of software functions useful for a user from a collection of physically available software functions provided by a number of software developers.
In the computer-oriented society of today, new software functions are increasingly developed, and versions of conventional software are updated day by day. Here, software function does not mean software package or software product itself provided by the developers, but it means individual function provided in form of software. For example, in a software product in a front-end processor, which works for conversion of kana (Japanese vernaculars) and Kanji (Chinese characters), a software function called "kana and kanji conversion" is prepared. In a newspaper metaphor environment, which presents data obtained from retrieval of data base to a user in form of newspaper articles, at least the following three functions are contained: a function to present the data obtained by retrieval of data base to a user in form of a newspaper article, a function to turn pages of the newspaper, and a function to magnify and display content of the article. That is, the developers are offering a single software function alone or a plurality of software functions as software package or software product.
The newly designed software function has many possibilities in the sense that it offers chances to overcome old practices and to increase competitive force
for the users. On the other hand, it is very difficult to find and select software functions useful for the user while evaluating the software functions because there are enormous numbers of new software functions. It is needless to say that such situations occur in a stand-alone computer system, while it is more remarkably found in the so-called open network environment, in which the user cab have access to software functions of the other computer systems via computer network.
Under such circumstances, there are strong demands on a filtering mechanism, which serves as a "screen (sieve)" for finding and selecting a collection of software truly useful for the user from a collection of physically available software functions provided by a number software developers
The concept of the filtering mechanism can be explained as described below in connection with FIG. 10. A software developer 13' develops new software functions and releases new versions of conventional software functions. These make up a collection of software functions as shown by reference numeral 18'. For a user, however, not all of these software functions are useful. Then, it is necessary to extract a collection of software functions 19' truly useful for the user 5' by filtering the collection of software functions 18' through a screen 6'. The filtering mechanism serves as such screen 6'.
However, the operation to find and select the software functions useful for the user is not enough for a filtering mechanism. Certainly, newly designed software functions offer chances to overcome old practices. On the other hand, these functions request the user to give labor force to change and reorganize the pattern of task execution, which the user has been organizing up to that moment.
Here, the pattern of task execution means an operating procedure, by which the user executes the task. Taking an example in the execution of a task to prepare a slip, in case a user utilizes a software function A to a certain extent and then utilizes a software function B to complete a slip, it is not that all users prepare slips by the same procedure, but some users complete slips by utilizing only the software function A, while some other users may utilize other software function C. That is to say, when executing a task, each individual user usually executes by the procedure determined by himself.
As described above, the user organizes his own task execution pattern in order to efficiently execute the task. In case new software functions are utilized, the task execution pattern up to that mement is no longer achievable in most cases because the software function offers new function. As a result, it is necessary to newly reorganize task execution pattern.
From such viewpoints, it is necessary for the filtering mechanism to give full consideration not only on finding and selecting of a candidate for the software functions, which appear to be useful for the user, but also on balance with two demands of the users, i.e. a demand "to want to maintain their patterns of task execution" and a demand "to want to increase personal ability by receiving good solution offered by new technology".
Based on the above, it is necessary for the filtering mechanism to satisfy the following three requirements:
(1) There is relative benefit. That is, the new software functions found and selected by the filtering mechanism must be such that conventional task execution pattern of the user is improved by adopting such functions. PA0 (2) Reorganizing must be accomplished with less labor. That is, the new software functions to be found and selected by the filtering mechanism must be such that the user requires the least labor for reorganizing his task execution pattern when adopting such functions. PA0 (3) Easiness to assess. That is, when adopting the new software functions, the user must be able to subjectively judge and trade off within short time, i.e. how the conventional task execution pattern can be improved and how much labor the user needs by adopting the new software functions.
With the above requirements, the present applicant proposed a computer system for performing operations based on the context of user's task execution on a task model and filed Japanese Patent Application 5-5602. The basic arrangement of this application is shown in FIG. 11.
In FIG. 11, a computer system 1' comprises task model holding means 2', context information holding means 3', and task execution means 4'.
The task model holding means 2' holds a task model, which is a collection of data acquired by modelling task execution pattern of a user 5', and the context information holding means 3' is to hold context information, which is knowledge to represent context of task execution of the user 5'. Concrete aspects of the task model and context information will be described in detail in the examples later. In FIG. 11 the words "task model" is entered in the block for the task model holding means 2', and the words "context information" are entered in the block for the context information holding means 3'. These were given to facilitate the understanding by simply entering content of the information held by these holding means. In the following, the same applies to the means for holding information.
The task execution means 4' sequentially calculates context information from input operation series of the user 5' using a task model held by the task holding means 2', makes access to the context information holding means 3' and updates context information held by the context information holding means 3'. The task execution means 4' referes to the task model and the context information with respect to operation input of the user 5', and estimates and interprets which task the user 5' is requesting. From a collection 18' of physically available software functions, a function suitable for the context of task execution is started. Further, referring to the task model and the context information, the results of execution of said function are converted to an expression to pre sent to the user 5'.
In the conventional computer system 1' as shown in FIG. 11, the context of task execution of the user 5' is identified by referring to the task model, and only the software function suitable for the context can be selected from the collection 18' of the physically available software functions.
As an example to actualize such computer system 1', there are POISE system or various types of active help systems.
In POISE system, knowledge analyzed and prepared with respect to office work using a collection of specific software products is given in advance as a task model by a system designer, and it is possible to identify context of task execution of the user and to provide support along said context. However, with the knowledge obtained from task analysis at a certain time point, it is not possible to add new software products or to cope changes of the task itself of the user associated with such addition.
Also, various types of active help systems are also designed according to the knowledge of a given domain, e.g. a method to utilize UNIX system, a method to utilize Emacs editor, etc., and it is not very easy to add knowledge newly.
In contrast to the POISE system or conventional active help systems, the present applicant proposed in the Japanese Patent Application 5-5602 as described above as follows: To actualize the computer system as shown in FIG. 11, an arrangement is proposed, which includes a studio manager agent, a bit arbiter agent, and a dialog manager agent, whereby a collection of agents give or take task phase descriptions via studio using studio functions, and the bid arbiter agent assesses bid messages based on context under the control of the studio manager agent so that agents are operated according to mutual context.
In so doing, when new software functions are added, it is possible to integrate the newly added task descriptions to task model because a mechanism to utilize the newly added software functions is provided while maintaining task execution pattern of the user as practical as possible. As a result, without changing the previous knowledge of the user, the newly added software functions can be utilized, and more portions of task requests of the user can be solved.
Although it is possible by the computer system proposed by the present applicant in Japanese Patent Application 5-5602 to solve many problems in conventional techniques, it is not judged who is the developer of the new software functions, which become an issue in practical application, when bid arbiter agent assesses the bid. In other words, it is not judged whether the new functions have been prepared by a reliable developer or not. Also, in case it is assessed as agreeing with the context as the results of bidding, the new functions are added immediately without giving opportunity for trial use for the user, and this may lead to the results to bother the user.
As described above, there have been growing demands on a system, which can provide support to the user efficiently when the user tries to find and select only the software function truly useful for the user from an enormous collection of physically available software functions, whereas there has been none, which can completely solve such problems.